/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Util;

import java.util.ArrayList;
import java.util.Collection;

/**
 * Classe responsavel por conter todos os Erros, Tanto do Lexico quanto
 * Sintatico
 *
 * @author Danilo
 */
public class ListaErro {

    private static ListaErro instance;
    private static Collection<Erro> listaErro;

    private ListaErro() {
    }

    /**
     * Método para popular a lista com os erros.
     *
     * @param origem
     * @param erro
     */
    public static void addLista(String origem, String erro) {
        getListaErro().add(new Erro(origem, erro));
    }

    public static ListaErro getInstance() {
        if (instance == null) {
            instance = new ListaErro();
        }
        return instance;
    }

    public static Collection<Erro> getListaErro() {
        if (listaErro == null) {
            listaErro = new ArrayList<>();
        }
        return listaErro;
    }

    /**
     * Método responsável por gerar os erros que estão na lista em uma String
     * para ser impressa.
     *
     * @return String
     */
    public static String listaToString() {
        String texto = new String();

        if (listaErro == null || listaErro.isEmpty()) {
            texto = "CONSTRUÍDO COM SUCESSO";
        } else {
            for (Erro er : listaErro) {
                texto = texto + er.getOrigem() + " || " + er.getErro() + "\n";
            }
            listaErro.clear();
        }

        return texto;
    }
}
